Skip to content

feat(types): Support custom events on PubSub and PeerStreams #3078

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed

Conversation

tysonclugg
Copy link

Title

feat(types): Support custom events on PubSub and PeerStreams

Description

Allow implementations of PubSub and PeerStreams to maintain type safety when using custom events.

Notes & open questions

Given these changes don't affect functional code paths and that there's no clear direction on how typescript only changes should be tested in js-libp2p, I've not added any tests.

Change checklist

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if necessary (this includes comments as well)
  • I have added tests that prove my fix is effective or that my feature works

@tysonclugg tysonclugg requested a review from a team as a code owner April 14, 2025 02:44
@tysonclugg tysonclugg force-pushed the feature/custom-peerstream-events branch from edb5f91 to 59eabb0 Compare April 24, 2025 06:55
@p-shahi
Copy link
Member

p-shahi commented May 20, 2025

@tysonclugg We're thinking of removing pubsub from the js-libp2p monorepo (in the future perhaps as a part of v3) and so, this PR is better served to be made against https://github.com/ChainSafe/js-libp2p-gossipsub
@achingbrain will create an issue in that repo describing the current state of wonky interfaces between pubsub and gossipsub in that repo as well

@p-shahi p-shahi closed this May 20, 2025
@tysonclugg
Copy link
Author

tysonclugg commented Jun 1, 2025

I'm of the opinion that js-libp2p-gossipsub should be merging into js-libp2p instead of the other way around.

In the interim (until things are moved one way or the other), this is still the correct place for this PR. There is no other place to submit this code change which has clear benefits for the typing system. I would very much appreciate this being merged now, and not put off because of a potential future change in policy (which hasn't been announced anywhere at this stage that I can see).

Q1: @achingbrain What assurances do we have that anything is being done in the ChainSafe repo? Are PRs such as #523 being looked at, and are ChainSafe still actively developing js-libp2p-gossipsub for use with their own active projects?

Q2: @p-shahi What assurances do we have that PubSub will remain as a level 3A (recommended active) part of libp2p, and isn't destined for deprecation?

My concerns about moving PubSub out of libp2p is that it will rapidly degenerate into disrepair, thereby forcing a negative response to Q2 above. Moving gossipsub into libp2p helps to keep things from going stale and overall should improve the situation (eg: PR 523 linked above).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants